package br.com.jhd.aba.dominio.repositorios;

import java.io.Serializable;
import java.util.List;

public interface IRepository<T, ID extends Serializable> {

	Class<T> classeDoObjeto();

	void adicionar(T entity);

	void atualizar(T entity);

	void remover(T entity);

	void recarregar(T entity);

	T encontrarPorId(ID id);

	List<T> carregarTodos();

	List<T> carregarTodosComIntervalo(final int inicio, final int fim);

    List<T> encontrarComQuery(String query);

    List<T> encontrarComQueryEIntervalo(String query, final int inicio, final int fim);

}
